package com.qkjia.srb.gateway.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.reactive.CorsWebFilter;
import org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource;

/**
 *  @author 赵乾坤
 *  @since 2021-11-13 16:35
 * 解决跨域
 */
@Configuration//配置类
public class CorsConfig {


    /**
     * CorsWebFilter  跨域web过滤器对象 检查前端和后端服务是否跨域
     * UrlBasedCorsConfigurationSource  基于url的跨域配置
     * UrlBasedCorsConfigurationSource对象 config要注册上，针对什么
     * @return
     */
    @Bean
    public CorsWebFilter corsWebFilter() {
        CorsConfiguration config = new CorsConfiguration();
        config.setAllowCredentials(true); //是否允许携带cookie
        config.addAllowedOrigin("*"); //可接受的域，是一个具体域名或者*（代表任意域名）
        config.addAllowedHeader("*"); //允许携带的头
        config.addAllowedMethod("*"); //允许访问的方式
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        // 配置项要放进去
        source.registerCorsConfiguration("/**", config);
        return new CorsWebFilter(source);
    }
}
